1.6.1 控件概述
在自定义一个派生自 View 或 ViewGroup 类的控件时,必须实现一个构造函数。有三个构造函数供我们选择。
其实每种构造函数都是在特定的使用情景下所必须实现的,否则将会报 inflate 错误。
1.6.2 通过 XML 引入控件
使用以下方式引入控件:
就必须实现第二个构造函数:
1.6.3 动态添加控件
1. 概述
示例如下:
2. LayoutParams
|
|
每个容器类控件都会实现一套 LayoutParams 类,而子类则用的是父容器的 LayoutParams 类。比如上述中父容器是 LinearLayout,所以使用 LinearLayout.LayoutParams。之所以不能共用,是因为各个容器所对应的布局属性是不一样的。
在 RelativeLayout 中,实现添加到 TextView 控件的右侧:addRule()
1)设置 margin
2)设置 layout_weight (方法一)
3)设置 layout_weight (方法二)
4)设置 layout_gravity
5)设置 android:gravity
3. addView
动态添加控件都是通过 addView 来实现的,addView 是 ViewGroup 类中的一个函数,它有 5 个构造函数: